/*
* jiyan
*/
package com.jiyan.errorcode.service;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

import com.jiyan.errorcode.api.ErrorcodePoolFeignApi;
import com.jiyan.core.exceptions.ErrorcodePoolException;
import com.jiyan.core.exceptions.BaseException;
import com.jiyan.core.entity.Page;
import com.jiyan.errorcode.entity.ErrorcodePool;


/**
 * 错误码库
 * @author jiyan
 */
@Service("errorcodePoolSVImpl")
@Slf4j
public class ErrorcodePoolSVImpl {

    @Autowired
    private ErrorcodePoolFeignApi errorcodePoolFeignApi;

    /**
     * 加载一个对象ErrorcodePool
     * @param id * @param errorCode 错误码 由人为定义并制定出来指定一定场景模块的错误编码
     * @return ErrorcodePool
     */
    public ErrorcodePool load(java.lang.Long id,java.lang.String errorCode) {
        if(id==null&&errorCode==null){
            throw new ErrorcodePoolException(BaseException.BaseExceptionEnum.Ilegal_Param);
        }
        return errorcodePoolFeignApi.load(id,errorCode);
    }
    /**
     * 加载一个对象ErrorcodePool 通过id
     * @param id 
     * @return ErrorcodePool
     */
    public ErrorcodePool loadById(java.lang.Long id) {
        if(id==null){
            throw new ErrorcodePoolException(BaseException.BaseExceptionEnum.Ilegal_Param);
        }
        return errorcodePoolFeignApi.loadById(id);
    }

    /**
     * 加载一个对象ErrorcodePool 通过errorCode
     * @param errorCode 错误码 由人为定义并制定出来指定一定场景模块的错误编码
     * @return ErrorcodePool
     */
    public ErrorcodePool loadByErrorCode(java.lang.String errorCode) {
        if(errorCode==null){
            throw new ErrorcodePoolException(BaseException.BaseExceptionEnum.Ilegal_Param);
        }
        return errorcodePoolFeignApi.loadByErrorCode(errorCode);
    }


    /**
     * 删除对象ErrorcodePool
     * @param id * @param errorCode 错误码 由人为定义并制定出来指定一定场景模块的错误编码
     */
    
    public void delete(java.lang.Long id,java.lang.String errorCode) {
        if(id==null&&errorCode==null){
            throw new ErrorcodePoolException(BaseException.BaseExceptionEnum.Ilegal_Param);
        }
        errorcodePoolFeignApi.delete(id,errorCode);
    }



    /**
     * 查询ErrorcodePool分页
     *
     * @param errorcodePool  对象
     * @param curPage 当前页
     * @param pageSize 分页条数
     * @return List<ErrorcodePool>
     */
    public List<ErrorcodePool> list(ErrorcodePool errorcodePool, int curPage,int pageSize) {
        return errorcodePoolFeignApi.list(errorcodePool, curPage,pageSize);
    }

    /**
     * 查询ErrorcodePool分页
     *
     * @param id  * @param errorCode  错误码 由人为定义并制定出来指定一定场景模块的错误编码
     * @param curPage 当前页
     * @param pageSize 分页条数
     * @return List<ErrorcodePool>
     */
    public List<ErrorcodePool> list(java.lang.Long id,java.lang.String errorCode,int curPage, int pageSize) {
        if (curPage < 0) {
           curPage = 1;
        }

        if (pageSize < 0) {
            pageSize = Page.limit;
        }

        ErrorcodePool errorcodePool=new ErrorcodePool();
        errorcodePool.setId(id);
        errorcodePool.setErrorCode(errorCode);

        return errorcodePoolFeignApi.list(errorcodePool,curPage,pageSize);
    }


    public int count(java.lang.Long id,java.lang.String errorCode) {
        return errorcodePoolFeignApi.count(id,errorCode);
    }


    public int count(ErrorcodePool errorcodePool) {
        return errorcodePoolFeignApi.count(errorcodePool);
    }


    /**
     * 保存
     *
     * @param errorcodePool 实体
     * @throws BaseException
     */
    public void save(ErrorcodePool errorcodePool) {
        if(errorcodePool==null){ throw new ErrorcodePoolException(BaseException.BaseExceptionEnum.Ilegal_Param);}
        errorcodePoolFeignApi.build(errorcodePool);
    }

    /**
     * 更新
     *
     * @param errorcodePool 实体
     * @throws BaseException
     */
    public void modify(ErrorcodePool errorcodePool) {
        if(errorcodePool==null){ throw new ErrorcodePoolException(BaseException.BaseExceptionEnum.Ilegal_Param);}
        errorcodePoolFeignApi.modify(errorcodePool);
    }

}
